package cxf.spring.demo.example;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * Использование легковесных компонентов в AWT
 * <p/>
 * User: Vlad Vinichenko (akerigan@gmail.com)
 * Date: 07.03.2009
 * Time: 13:52:32
 */
public class AWTLightweights extends Frame {

    // легковесный компонент - синий квадрат
    class Lightweight1 extends Component {
        public void paint(Graphics g) {
            g.setColor(Color.blue);
            g.fillRect(20, 40, 100, 100);
        }
    }

    // легковесный компонент - красный кружок
    class Lightweight2 extends Component {
        public void paint(Graphics g) {
            g.setColor(Color.red);
            g.fillOval(20, 30, 90, 90);
        }
    }

    public AWTLightweights() {
        super("AWTLightweights"); // при закрытии окна приложение завершается
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        // добавляем пару легковесных компонентов
        Lightweight1 lt1 = new Lightweight1();
        Lightweight2 lt2 = new Lightweight2();
        // укажем координаты вручную, чтобы компоненты перекрывались
        setLayout(null);
        lt1.setBounds(0, 0, 200, 200);
        lt2.setBounds(0, 0, 200, 200);
        add(lt2);
        add(lt1);
        // последним добавляем тяжеловесный компонент
        Button button = new Button("Тяжелая!");
        button.setBounds(50, 50, 80, 30);
        add(button);
        // выводим окно на экран
        setSize(200, 200);
        setVisible(true);
    }

    public static void main(String[] args) {
        new AWTLightweights();
    }
}


